'''
（3）新建“exerc3”Python文件完成作业，编写一个用户注册小程序，要求用户在控制台输入“ID”、“EMAIL地址”、“身份证号”、“姓名”。要求：
ID长度不能超过8位，且只能由数字、字母、下划线组成
EMAIL地址要求符合基本电子邮件格式
身份证号要求符合基本格式
姓名只能中文且不能超过4位
以上操作均不能用正则表达式
验证合法后输出用户的所有信息，要求在信息中体现出性别。
'''
# exerc3.py
def validate_id(user_id):
    if len(user_id) > 8:
        return False
    for char in user_id:
        if not (char.isalnum() or char == '_'):
            return False
    return True

def validate_email(email):
    if '@' not in email or '.' not in email:
        return False
    return True

def validate_id_number(id_number):
    if len(id_number) != 18 or not id_number[:-1].isdigit():
        return False
    return True

def validate_name(name):
    if len(name) > 4 or not all('\u4e00' <= char <= '\u9fff' for char in name):
        return False
    return True

def get_gender(id_number):
    # 倒数第二位数字的奇偶性决定性别
    gender_digit = int(id_number[-2])
    return "男" if gender_digit % 2 == 1 else "女"

def main():
    user_id = input("请输入ID（不超过8位，只能包含数字、字母、下划线）：")
    email = input("请输入EMAIL地址：")
    id_number = input("请输入身份证号：")
    name = input("请输入姓名（只能中文且不超过4位）：")

    if not validate_id(user_id):
        print("ID无效！")
        return
    if not validate_email(email):
        print("EMAIL地址无效！")
        return
    if not validate_id_number(id_number):
        print("身份证号无效！")
        return
    if not validate_name(name):
        print("姓名无效！")
        return

    gender = get_gender(id_number)
    print("注册成功！用户信息如下：")
    print(f"ID: {user_id}")
    print(f"EMAIL地址: {email}")
    print(f"身份证号: {id_number}")
    print(f"姓名: {name}")
    print(f"性别: {gender}")

if __name__ == "__main__":
    main()